package com.shrct.businessprocess.project;

import com.shrct.businessprocess.organization.RCEmployee;
import com.shrct.businessprocess.organization.RCOrganizationService;
import com.shrct.businessprocess.project.RCProject;
import com.shrct.businessprocess.project.RCProjectProcessEvent;
import com.shrct.businessprocess.project.impl.RCInitializeProjectProcessImpl;
import com.shrct.businessprocess.project.proxy.RCInitializeProjectProcessProxy;
import edu.fudan.langlab.domain.task.TaskService;
import edu.fudan.langlab.domain.workflow.BusinessProcess;
import edu.fudan.mylang.pf.EntityImplementation;

@EntityImplementation(implementBy = RCInitializeProjectProcessImpl.class)
public interface RCInitializeProjectProcess extends BusinessProcess {
  public abstract void start(final RCProject project);
  
  public abstract void SalesManagerAudit_reject(final String comment);
  
  public abstract void SalesManagerAudit_agree(final String comment);
  
  public abstract void SalesModify_modified(final String comment);
  
  public abstract void SalesModify_cancel(final String comment);
  
  public abstract void CEOAudit_reject(final String comment);
  
  public abstract void CEOAudit_agree(final String comment);
  
  public abstract RCProject getProject();
  
  public abstract RCInitializeProjectProcess setProject(final RCProject project);
  
  public abstract RCEmployee getStarter();
  
  public abstract RCInitializeProjectProcess setStarter(final RCEmployee starter);
  
  public abstract RCProjectProcessEvent getEvent();
  
  public abstract RCOrganizationService getOrganizationService();
  
  public abstract TaskService getTaskService();
  
  public abstract RCInitializeProjectProcessProxy toProxy();
}
